מבחן 0220 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדיקות אחרונות לפני מסירה )עמודים 8-11( מבנה השאלון 5 שאלות לכל שאלה 11 נקודות 2 שאלות )בחירה מ - 3( לכל שאלה 15 נקודות שאלה אחת )בחירה מ- 2( 21 נקודות פרק ראשון פרק שני פרק שלישי 51 נקודות סה"כ 31 נקודות סה"כ נקודות סה"כ 21 תוכן עניינים של פתרון המבחן שאלה 1: לולאת for )נתון אלגוריתם... מעקב, פלט... ) שאלה 2: לולאת תנאי ( נתון אלגוריתם. מעקב, ניתוח )... שאלה 3: מערך חד-ממדי, מספרים אקראיים ( כתוב קטע תכנית...(...... שאלה : פעולות )האם הזימון חוקי?... ) שאלה 5: שאלה 6: שאלה 7: שאלה 8: שאלה 9: לולאת, for פעולות )נתונה פעולה וזימונים...האם הזימון חוקי/לא חוקי?(... לולאת תנאי שימוש בזקיף )כתוב תכנית(... מערך חד-ממדי, פעולות )מעקב למערכים..(... לולאת,for פעולות )כתוב תכנית...(... מערך דו-ממדי, פעולות )כתוב תכנית...( 51 מיקוד 1023 ביסודות #C פתרון בגרויות שאלון 222111 כל הזכויות שמורות ל 'מבט לחלונות'
מבחן 0220 ענה על כל השאלות 2-5 )לכל שאלה 20 נקודות( פתרון שאלה 1 נושאים לימודיים הנדרשים לפתרון השאלה: הוראת תנאי, לולאת מונה סוג השאלה: מעקב אחר תכנית, נתון אלגוריתם... מה הפלט עבור קלט נתון... נתון האלגוריתם: )2( )1( )3( )( קלוט מספר למשתנה a. mul 1 עבור k מ- 2 עד a בצע )3.2( קלוט מספר למשתנה b )3.1( אם b זוגי אזי mul mul*b/2 אחרת mul mul*b הצג כפלט את הערך של mul טבלת מעקב עבור הקלט,8,5,3 ערכים התחלתיים לולאה אם b זוגי k a b פלט mul 3 1 1 5 שקר כי 5 אי זוגי 5=5*1 2 8 אמת כי 2 זוגי 5*8/2=20 3 אמת כי זוגי 20*/2=0 0 פתרון שאלה 2 נושאים לימודיים הנדרשים לפתרון השאלה: השמה, לולאת תנאי סוג השאלה: מעקב וניתוח תכנית, נתון אלגוריתם... מה הפלט? תן דוגמאות לקלט ש..., מה אם..? נתון האלגוריתם: m 0 )2( קלוט מספר למשתנה x )1( בצע כל עוד 0=<x )3( אם x הוא בין 50 ל- 00 )כולל הקצוות( אזי )3.2( m m+1 )3.2.2 קלוט מספר למשתנה x )3.1( הצג כפלט את הערך של m )( 51 מיקוד 1023 ביסודות #C פתרון בגרויות שאלון 222111 כל הזכויות שמורות ל 'מבט לחלונות'
א. ב. ג. 3-,61,13,86,1 טבלת מעקב עבור הקלט התנאי 0=<x אם x הוא בין 50 ל- 00 m x פלט 0 10 אמת 0=<10 שקר כי 20 לא בין 50 ל- 00 6 אמת 0=<6 אמת כי בין 50 ל- 00 1 51 אמת 0=<51 אמת כי 52 בין 50 ל- 00 2 30 אמת 0=<30 שקר כי 30 לא בין 50 ל- 00 - שקר ->=0 2 דוגמה לקלט שבעבורו הלולאה לא תתבצע כלל: 1,30,50- הסבר: עבור כל סדרה שמתחילה במספר שקטן מ- 0 הלולאה לא תתבצע כלל. דוגמה לקלט שבעבורו הלולאה תתבצע פעם אחת לפחות והפלט 1-,10,20,120 1: הסבר: פלט 0 יתקבל עבור כל סדרה של מספרים שאין בה אף מספר בין 50 ל- 00 פתרון שאלה 3 נושאים לימודיים הנדרשים לפתרון השאלה: מערך חד-ממדי, מספרים אקראיים סוג השאלה: כתוב קטע תכנית... פלט: 2( מערך בגודל 3 שכל אחד מתאיו מכיל מספר אקראי בין 5 ל- 21. 1( מספר התאים במערך שיש בהם את המספר 2. Random randnum = new Random(); counter = 0; אפשר גם for (int i=0 ; i<36 ; i++) // i<numarr.length numarr[i] = randnum.next(5, 13); if (numarr[i]==8) counter = counter+1; Console.WriteLine ("Counter="+counter); פתרון שאלה נושאים לימודיים הנדרשים לפתרון השאלה: פעולות סוג השאלה: תקינות של זימונים לפעולה: נתונה כותרת פעולה... האם הזימון חוקי/לא חוקי? נתונה כותרת הפעולה הזימון חוקי. הזימון חוקי. חוקי/לא חוקי public static int Test (int x, int y, double z) הזימון לא חוקי: אין התאמה במספר הפרמטרים. הפעולה מכילה 3 פרמטרים ואילו הזימון רק אחד. הזימון לא חוקי: אין התאמה בטיפוס הפרמטר האמצעי )y( משתנה שלם. אין אפשרות לזמן ממשי למשתנה שלם(. לעומת זאת, z משתנה ממשי, ואין בעיה לזמן שלם. הזימון א. ב. ג. ד. x = Test(3, 7, 8.2); t = Test(b, b, 2.5); c = Test(7.8); m = Test(, 6.25, ); 51 מיקוד 1023 ביסודות #C פתרון בגרויות שאלון 222111 כל הזכויות שמורות ל 'מבט לחלונות'
if (Test(2,,6)==1) k=7; הזימון חוקי. פתרון שאלה 5 נושאים לימודיים הנדרשים לפתרון השאלה: לולאות, מחרוזות ה. סוג השאלה: כתוב קטע תכנית... int count = 0; שלא תהיה חריגה מגבולות המערך // i++) for (int i = 0 ; i < st.length 1 ; אותיות גדולות // 'Y') if (st[i + 1] == ' ' && st[i] == count++; Console.WriteLine ("The 'end letter' y is appear: " + count + " times"); ענה על שתיים מהשאלות -2 )לכל שאלה 25 נקודות( פתרון שאלה 6 נושאים לימודיים הנדרשים לפתרון השאלה: לולאת תנאי: שימוש בזקיף סוג השאלה: כתוב תכנית class q6t2000 קלט: מדידות של טמפרטורות, שנמדדו במשך תקופה מסוימת, כל יום מדידה אחת **/ פלט: מספר הימים המקסימאלי שעבר בין שתי מדידות של טמפרטורות הזהות ליום הראשון public static void Main(string[] args) int temp1,temp2,max=-1, count=0; temp1 = int.parse(console.readline()); temp2 = int.parse(console.readline()); while (temp2<=100) if (temp2==temp1) */ if (count>max) max = count; count = 0; else count++; temp2 = int.parse(console.readline()); מרווח הימים המקסימלי שעברו בין שתי טמפרטורות הזהות " + (max Console.WriteLine ;(" ליום הראשון 5 מיקוד 1023 ביסודות #C פתרון בגרויות שאלון 222111 כל הזכויות שמורות ל 'מבט לחלונות'
פתרון שאלה 7 נושאים לימודיים הנדרשים לפתרון השאלה: לולאת תנאי, מערך חד- ממדי סוג השאלה: נתונות טענות כניסה ויציאה מעקב למערכים ans = 0; i = 0; while (i<n-2) if ((a[i+1]>a[i])&&(a[i+1]>a[i+2])) ans++; i = i+2; נתון קטע התכנית הבא: a 3 0 התנאי i<n-2 2-21 1-2 3-30 - 5 1 2 א. טבלת מעקב עבור המערך n a[i] a[i+1] a[i+2] a[i+1]>a[i] a[i+1]>a[i+2] 1&&2 ans i 9 0 0 1 2 אמת אמת אמת 3 6-12 אמת 0<9-2 אמת 2<9-2 -12 8-37 אמת אמת אמת 2 אמת <9-2 -37-6 2 אמת שקר שקר 6 אמת 6<9-2 2-9 13 שקר שקר שקר 8 שקר 9-2>8 1-2 0 23 2 דרך נוספת להצגת המעקב אם לא הייתה בקשה מפורטת למעקב הנ"ל נראה שנוח יותר להציג את המעקב כך: התנאי i<n-2 אמת 9-2>0 אמת 9-2>2 אמת 9-2> n (a[i+1]>a[i]) (a[i+1]>a[i+2]) ans i 9 0 0 (a[0+1]>a[0])&&(a[0+1]>a[0+2])= (a[1]>a[0])&&(a[1]>a[2])= (6>3)&&(6>-12)= (true)&&(true)=true (a[2+1]>a[2])&&(a[2+1]>a[2+2])= (a[3]>a[2])&&(a[3]>a[])= (-8>-12)&&(-8>-37)= (true)&&(true)=true (a[+1]>a[])&&(a[+1]>a[+2])= (a[5]>a[])&&(a[5]>a[6])= (-6>-37)&&(-6>2)= (true)&&(false)= false 1 2 2 6 51 מיקוד 1023 ביסודות #C פתרון בגרויות שאלון 222111 כל הזכויות שמורות ל 'מבט לחלונות'
אמת 9-2>6 שקר 9-2>8 (a[6+1]>a[6])&&(a[6+1]>a[6+2])= (a[7]>a[6])&&(a[7]>a[8])= (-9>2)&&(-9>13)= (false)&&(false)= false 8 ב. עבור המערך הבא, נקבל 3= ans a 3 0 2-21 1-2 3-30 - 5-20 -2 0 23 2 פתרון שאלה 8 נושאים לימודיים הנדרשים לפתרון השאלה: לולאת,for פעולות סוג השאלה: כתוב תכנית קלט: מספר פקקים וקוטר תקני של כל אחת מ- 50 מכונות פלט: מספר פקקים תקינים שכל מכונה יצרה class q2t2000 קלט: מספר פקקים וקוטר תקני של כל אחת מ- 50 מכונות **/ /* פלט: מספר פקקים תקינים שכל מכונה יצרה public static int Check(int diameter, int num) טענת כניסה: הפעולה מקבלת קוטר תקני ומספר פקקים שמכונה יצרה **/ /* טענת יציאה: הפעולה מחזירה את מפר הפקקים התקני של המכונה int d, count=0; for (int i=0 ; i<num ; i++) d = int.parse(console.readline()); if (Math.Abs(d-diameter)<=1) count++; return count; ערך מוחלט-ירד במיקוד 2113 public static void Main(string[] args) int diameter, num; for (int i=0 ; i<50 ; i++) ;("הכנס קוטר תקני ומספר פקקים שהמכונה יצרה") Console.WriteLine diameter = int.parse(console.readline()); num = int.parse(console.readline()); "); :מספר הפקקים התקינים" + num) Console.WriteLine (Check(diameter, 511 מיקוד 1023 ביסודות #C פתרון בגרויות שאלון 222111 כל הזכויות שמורות ל 'מבט לחלונות'
ענה על אחת מבין השאלות פתרון שאלה 9 )10 נקודות( 2-20 נושאים לימודיים הנדרשים לפתרון השאלה: מערך חד- ממדי, פעולות סוג השאלה: כתוב תכנית קלט: שעות כניסה ויציאה של מכוניות לחניון. פלט: סכום לתשלום של כל מכונית עבור החניה וסך כל הכנסות החניון. הסבר הפתרון - מימוש חניון לצורך מימוש האלגוריתם יש צורך בייצוג של מערך החניות והקופה. הן המערך והן הקופה מתעדכנים בפעולות המתייחסות לניהול החניון. מאחר וידוע שיש 322 מקומות חניה, ולכל מקום חניה המידע הרלוונטי לשמירה הוא שעת הכניסה של הרכב לחניון, נגדיר מערך של שלמים. ערך כל תא שהמציין שלו הוא מספר החניה יהיה 0 אם המקום פנוי, או שעת הכניסה לחניון אם המקום תפוס. מאחר ויש מערך שלמים ננצל את תא 0 במערך לייצוג הקופה. בכך נחסוך בעייתיות של עדכון לא נדרש אך חשוב שני פרמטרים באותה פעולה, כמו למשל בפעולות:.ExitPark,OpenPark טבלת פעולות שם המשימה )הפעולה( OpenPark EnterPark ExitPark ClosePark טבלת משתנים שם המשתנה p i hour place סוג הפעולה פעולה שלא מחזירה ערך פעולה שלא מחזירה ערך פעולה שלא מחזירה ערך פעולה שלא מחזירה ערך טיפוס המשתנה מערך חד-ממדי שלם שלם שלם טענות כניסה ויציאה טענת כניסה: הפעולה מקבלת את מערך החניון וקולטת שעת כניסה לחניון טענת יציאה: הפעולה מעדכנת את המערך בכניסה לחניון או מדפיסה הודעה מתאימה אם אין מקום טענת כניסה: הפעולה מקבלת את מערך החניון וקולטת שעת כניסה לחניון טענת יציאה: הפעולה מעדכנת את המערך בכניסה לחניון או מדפיסה הודעה מתאימה אם אין מקום טענת כניסה: הפעולה מקבלת את מערך החניון וקולטת שעת יציאה מהחניון ומקום חניה טענת יציאה: הפעולה מדפיסה את הסכום לתשלום, ומוסיפה אותו לסך ההכנסות של החניון טענת כניסה: הפעולה מקבלת את מערך החניון טענת יציאה: הפעולה מדפיסה את סך ההכנסות של החניון לא נדרש אך חשוב הסבר/תפקיד מערך חד-ממדי של קופה ומקומות חניה מציין תורן למספר חניה שעת כניסה/יציאה מספר חניה הסבר הפתרון לא במיקוד 1023 - אין שאלות עם פתרון לפי שלבים. תחום ערכים גדול או שווה 0 2-322 -13 2-322 515 מיקוד 1023 ביסודות #C פתרון בגרויות שאלון 222111 כל הזכויות שמורות ל 'מבט לחלונות'
התכנית ב- #C class q9t2007 public static void OpenPark (int[] p) for (int i=0 ; i<319 ; i++) p[i] = 0; public static void EnterPark (int[] p) טענת כניסה: הפעולה מקבלת את מערך החניון וקולטת שעת כניסה לחניון **/ /*טענת יציאה: הפעולה מעדכנת את המערך בכניסה לחניון או מדפיסה הודעה מתאימה אם אין מקום ;("הקש שעת כניסה") Console.WriteLine int hour = int.parse(console.readline()); bool found = false; for (int i=1 ; i<319 &&!found ; i++) if (p[i] == 0) p[i] = hour; ;(" המקום הפנוי שנמצא הוא" + i) Console.WriteLine found = true; if (!found) ;("אין מקום פנוי בחניון") Console.WriteLine public static void ExitPark (int[] p) טענת כניסה: הפעולה מקבלת את מערך החניון וקולטת שעת יציאה מהחניון ומקום חניה **/ /* טענת יציאה: הפעולה מדפיסה את הסכום לתשלום, ומוסיפה אותו לסך ההכנסות של החניון ;("הכנס מספר חניה") Console.WriteLine int place = int.parse(console.readline()); ;("הקש שעת יציאה") Console.WriteLine int hour = int.parse(console.readline()); int pay = (hour - p[place])*1; ); " :הסכום לתשלום הוא" + pay Console.WriteLine ( p[0] = p[0] + pay; p[place]=0; public static void ClosePark (int[] p) טענת כניסה: הפעולה מקבלת את מערך החניון **/ /* טענת יציאה: הפעולה מדפיסה את סך ההכנסות של החניון ;("סך כל ההכנסות מהחניון" + [0]p) Console.WriteLine public static void Main(string[] args) 511 מיקוד 1023 ביסודות #C פתרון בגרויות שאלון 222111 כל הזכויות שמורות ל 'מבט לחלונות'
int[] p = new int[319]; OpenPark(p); "); הכנס קוד: - 2 לכניסת רכב -1 ליציאת רכב " ( Console.WriteLine int code = int.parse(console.readline()); while (code!= -1) if (code == 1) EnterPark(p); else if (code == 2) ExitPark(p); "); הכנס קוד: - 2 לכניסת רכב -1 ליציאת רכב " ( Console.WriteLine code = int.parse(console.readline()); ClosePark(p); פתרון שאלה 11 נושאים לימודיים הנדרשים לפתרון השאלה: מערך חד-ממדי, פעולות סוג השאלה: כתוב תכנית קלט: מערך של 205 מספרים שלמים פלט: הזזה מעגלית עד לרצף של 0 אפסים class q10t2007 קלט: מערך של 205 מספרים שלמים **/ /* פלט: הזזה מעגלית עד לרצף של 0 אפסים public static int Seven(int[] a ) טענת כניסה: הפעולה מקבלת מערך **/ /* טענת יציאה: הפעולה מחזירה 2 אם יש רצף של 0 אפסים או 0 אחרת int count=0; for (int i=0 ; i<a.length ; i++) if (a[i]==0) count++; if (count==7) return 1; else count = 0; התכנית ב- #C 511 מיקוד 1023 ביסודות #C פתרון בגרויות שאלון 222111 כל הזכויות שמורות ל 'מבט לחלונות'
return 0; public static void Shift (int[] a, int k ) טענת כניסה: הפעולה מקבלת מערך ומספר שלם **/ k הפעולה מבצעת הזזה של k שמאלה /* טענת יציאה: הפעולה מחזירה 2 אם יש רצף של 0 אפסים או 0 אחרת for (int i=0 ; i<a.length-k ; i++) a[i] = a[i+k]; for (int i = a.length-k ; i<a.length ; i++) a[i] = 0; public static void Main(string[] args) int[]a = new int[10]; int k; for (int i=0 ; i<a.length ; i++) a[i] = int.parse(console.readline()); while (Seven(a)==0) לא נדרש בשאלה // i++) for (int i=0 ; i<a.length ; Console.Write (a[i] + " "); Console.WriteLine ערך ל") ;(" k -הקש k = int.parse(console.readline()); Shift(a,k); לא נדרש בשאלה // i++) for (int i=0 ; i<a.length ; Console.WriteLine (a[i] + " "); 51 מיקוד 1023 ביסודות #C פתרון בגרויות שאלון 222111 כל הזכויות שמורות ל 'מבט לחלונות'